/**
 * @desc 判断两个字符是否为变位词
 * 变位词：词中含有的字母种类一致，且出现的次数也一致
 * 
 * 思路：
 *      很明显这种题要用到桶的概念
 *      直接判为失败的：为空、长度不一致
 *      遍历str1 生成桶，将其含有的字母都放进桶里统计该桶的数值（该字母的出现次数）
 * 
 *      遍历str2 
 *          没遇到一次字母就在桶对应的字母里查找是否有次数，
 *          每遇到一次，该桶里的数字--
 *          当该字母的桶次数为0 时 该字母的判别失败 return
 *      总的
 *          return true
 */

let res =  isDeformation('aqasx','xsaaa');
console.log(res);
 function isDeformation(str1,str2){
     if(str1===null||str2===null||str1.length!==str2.length){
         return false;
     }
     let count = [];
     // 统计str1次数
     for(let i=0;i<str1.length;i++){
        count[str1[i]] = (count[str1[i]]||0)+1;
     }

     // 遍历str2 依据count排查
     for(let i=0;i<str2.length;i++){
         if(!count[str2]||count[str2]-- == 0){
             return false;
         }
     }
     return true;
 }